package com.pf.log.annotation;

import com.pf.log.annotation.converter.Converter;
import com.pf.log.annotation.converter.DefaultConverter;

import java.lang.annotation.*;

/**
 * 日志字段标识
 *
 * @author PanFei
 * @version 1.0.0
 * @createTime 2022/7/9 22:54
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface LogField {

    /**
     * 字段别名
     *
     * @return
     */
    String alias() default "";

    /**
     * 字段值用指定符号隔开，记录编辑操作日志时，对字段先进行排序，再比较值。
     * <p>
     * 如某字段【remark】在数据库中存储是： a,b,c
     * 则在标记【remark】字段时， splitRegx=","
     *
     * @return
     */
    String splitRegx() default "";

    /**
     * 数据字典key
     *
     * @return
     */
    String converterKey() default "";

    /**
     * 数据字典转换类
     *
     * @return
     */
    Class<? extends Converter> converter() default DefaultConverter.class;

    /**
     * 模块编码分组
     *
     * @return
     */
    String[] moduleCodeGroup() default {};

}
